package com.adil.base.collections.map;

import java.util.HashMap;
import java.util.Map;

/**
 * @description: TODO
 * @author: Adil
 * @date: 2024/4/25
 */
public class HashMapDemo {
    public static void main(String[] args) {
        //HashMap 底层是数组+链表+红黑树实现的，所以查询、插入、删除的时间复杂度都为O(1)
        //HashMap 线程不安全，如果多个线程同时操作同一个HashMap，可能导致数据不一致
        //HashMap 初始容量为16，扩容时容量为原来的2倍，最大容量为2^30，超过最大容量时，会导致溢出
        //HashMap 允许null键和null值，但null键和null值不能放在同一个map中
        //HashMap 不是按照插入顺序排序的，如果需要按照插入顺序排序，可以使用LinkedHashMap
        //HashMap 允许key重复，但value不能重复
        //HashMap HashCode 冲突时，使用拉链法解决冲突，链表长度超过阈值时，链表转红黑树，提高查询效率

        // create a new HashMap
        HashMap<String, Integer> map = new HashMap<>();

        // add some key-value pairs to the map
        map.put("apple", 1);
        map.put("banana", 2);
        map.put("orange", 3);
    }
}
